package comandos;

import java.util.ArrayList;

import model.Usuario;
import protocol.MensajeComando;
import server.ClienteHilo;
import server.Servidor;
import server.services.AmigosService;

public class ObtenerAmigos implements ComandoServidor
{
	public void ejecutar (ClienteHilo cliente)
	{

			try
			{
				Usuario user = (Usuario) cliente.getInput().readObject();	
				AmigosService servicioAmigos = new AmigosService();

				System.out.println("Amigos - Obteniendo amigos de <" + user.getNick() + ">");
				
				ArrayList<Usuario> amigos = (ArrayList<Usuario>) servicioAmigos.amigosDe(user);
				
				for(Usuario u: amigos){
					if(Servidor.isConectado(u))
						u.setActivo(true);
				}
				
				//Le envio al cliente un mensaje indicando que se va enviar la lista de amigos
				cliente.getOutput().writeObject(new MensajeComando("obtener_amigos",0));
				cliente.getOutput().flush();
				
				//Le envio la lista de amigos
				cliente.getOutput().writeObject(amigos);
				cliente.getOutput().flush();
			}
			catch (Exception e)
			{
				e.printStackTrace();
				System.out.println("Problema al ejecutar el comando");
			}
			

	}
	
}
